import { PropType } from 'vue';
import { IContext, IParam } from '@/core';
import { any } from 'ramda';
import { string } from 'vue-types';
declare type modeType = 'string' | 'number';
declare type editorType = 'LISTBOX' | 'LISTBOXPICKUP';
export const listBoxProps = {
	name: {
		type: String,
	},
	value: {
		type: [String, Array],
		default: '',
	},
	data: {
		type: Object as PropType<IParam>,
	},
	mode: {
		type: String as PropType<modeType>,
		default: 'string',
	},
	valueType: {
		type: String as PropType<modeType>,
		default: 'string',
	},
	codeListTag: {
		type: String,
	},
	codeListType: {
		type: String,
	},
	valueSeparator: {
		type: String,
		default: ',',
	},
	editorType: {
		type: String as PropType<editorType>,
		default: 'LISTBOX',
	},
	acParams: {
		type: Object,
		default: {},
	},
	context: {
		type: Object as PropType<IContext>,
	},
	viewParams: {
		type: Object as PropType<IParam>,
	},
	localContext: {
		type: Object as PropType<IParam>,
	},
	localParam: {
		type: Object as PropType<IParam>,
	},
	multiple: {
		type: Boolean,
		default: false,
	},
	deMajorField: {
		// 应用实体主信息属性名称
		type: String,
		default: 'srfmajortext',
	},
	deKeyField: {
		//应用实体主键属性名称
		type: String,
		default: 'srfkey',
	},
	disabled: {
		type: Boolean,
		default: false,
	},
	readOnly: {
		type: Boolean,
		default: false,
	},
	deCodeName: {
		type: String,
	},
};
